package Day12_String类;

/* 可以给成员变量赋 初始值.

                                  无参构造                     有参构造
  一.构造方法: 修饰符 类名(){       public student(){       public student(String name,int age){
             }                  }                       }

  二.构造方法特点:
    1.构造方法名要和类名一样
    2.构造方法无返回值,连void都不能写
    3.如果不写构造方法,系统默认提供无参构造
    4.写了有参构造,无参构造就没了
    5.构造方法可以重载,可以有多个

  三.构造\set:
    1.一个对象只会走一次构造方法,给成员变量初始化(赋值一次)
    2.set方法可以多次调用,反复修改成员变量的值

   创建对象: 类名 对象名 = new 类名();
          student  s = new student();
   new:在堆中申请一块空间
*/

public class 构造方法 {
    public static void main(String[] args) {
        //调用无参构造
        student s1 = new student();
        System.out.println(s1.getName()+""+s1.getAge());

        //调用有参构造
        student s2 = new student("柳岩",18);
        System.out.println(s2.getName()+""+s2.getAge());
    }
}


class student{
    private String name;
    private int age;

    //构造方法  修饰符 类名(){
    //             }
    public student(){
        System.out.println("我是无参构造");
        name = "如花";
        age = 20;
    }

    //构造方法  修饰符 类名(String s,int i){
    //             }
    public student(String name,int age){
        System.out.println("我是有参构造");
        this.name = name;
        this.age = age;
    }
//------------------------------------------------------
    //set get方法

    public String getName() {

        return name;
    }

    public void setName(String name) {

        this.name = name;
    }

    public int getAge() {

        return age;
    }

    public void setAge(int age) {

        this.age = age;
    }
}